/**
 * 工作任务引擎
 * 任务管理子系统
 * 任务运行监控
 */
/**
 * 
 * 这是代码生成出来的js，原则上不建议修改此文件.
 * 
 **/
var qrtzTriggersDataGrid;
	$(function() {
		qrtzTriggersDataGrid = $('#qrtzTriggersDataGrid').datagrid({
			url : thunms.base()+'/schedule/quartz/qrtzTriggers/dataGridList',
			toolbar : '#toolbar',
			title : '信息列表',
			pagination : true,
			pageSize : 10,
			pageList : [ 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 ],
			fit : true,
			singleSelect:true,
			fitColumns : true,
			nowrap : false,
			border : false,
			idField : 'id',
			frozenColumns : [ [ {
				title : 'id',
				field : 'id',
				width : 50,
				checkbox : true
			} ] ],
			columns : [ [
			{
				field : 'triggerName',
				title : 'Trigger名称',
				width : 150,
				sortable : true
			} ,{
				field : 'triggerGroup',
				title : 'Trigger分组',
				width : 150,
				sortable : true
			} ,{
				field : 'nextFireTime',
				title : '下次执行时间',
				width : 150,
				sortable : true
			} ,{
				field : 'prevFireTime',
				title : '上次执行时间',
				width : 150,
				sortable : true
			},{
				field : 'priority',
				title : '优先级',
				width : 150,
				sortable : true
			} ,{
				field : 'triggerState',
				title : 'Trigger状态',
				width : 150,
				sortable : true
			} ,{
				field : 'triggerType',
				title : 'Trigger类型',
				width : 150,
				sortable : true
			} ,{
				field : 'startTime',
				title : '开始时间',
				width : 150,
				sortable : true
			} ,{
				field : 'endTime',
				title : '结束时间',
				width : 150,
				sortable : true
			}] ],
			onRowContextMenu : function(e, rowIndex, rowData) {
				e.preventDefault();
				$(this).datagrid('unselectAll');
				$(this).datagrid('selectRow', rowIndex);
				$('#menu').menu('show', {
					left : e.pageX,
					top : e.pageY
				});
			}
		});
		
		searchFun();
	});
	
	function qrtzTriggersRemove() {
		var ids = [];
		var rows = qrtzTriggersDataGrid.datagrid('getSelections');
		 if (rows.length != 1 && rows.length != 0) {
		        var names = [];
		        for (var i = 0; i < rows.length; i++) {
		            names.push(rows[i].id);
		        }
		        parent.thunms.show({
		                    msg : '只能择一任务进行操作！您已经选择了' + rows.length + '条数据',
		                    title : '提示'
		                });
		    } else if (rows.length == 1) {
			parent.thunms.confirm('请确认', '您要删除当前所选任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/deleteJob',
						data : {triggerName:rows[0].triggerName,triggerGroup:rows[0].triggerGroup},
						cache : false,
						dataType : "json",
						success : function(response) {
							qrtzTriggersDataGrid.datagrid('unselectAll');
							qrtzTriggersDataGrid.datagrid('reload');
							parent.thunms.show({
								title : '提示',
								msg : '删除成功！'
							});
						}
					});
				}
			});
		} else {
			parent.thunms.alert('提示', '请选择要删除的任务！', 'error');
		}
	}
	/**
	 * 任务暂停
	 */
	function qrtzTriggersSuspend() {
		var ids = [];
		var rows = qrtzTriggersDataGrid.datagrid('getSelections');
		if (rows.length != 1 && rows.length != 0) {
	        var names = [];
	        for (var i = 0; i < rows.length; i++) {
	            names.push(rows[i].id);
	        }
	        parent.thunms.show({
	                    msg : '只能择一任务进行操作！您已经选择了' + rows.length + '条数据',
	                    title : '提示'
	                });
	    } else if (rows.length ==1) {
	    	var row=rows[0];
	    	if(row.triggerState=='PAUSED'){
	    		parent.thunms.alert('提示', '任务已经停止！', 'error');
	    	}else{
			parent.thunms.confirm('请确认', '您要暂停当前所选任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/suspend',
						data : {triggerName:rows[0].triggerName,triggerGroup:rows[0].triggerGroup},
						cache : false,
						dataType : "json",
						success : function(response) {
							qrtzTriggersDataGrid.datagrid('unselectAll');
							qrtzTriggersDataGrid.datagrid('reload');
							parent.thunms.show({
								title : '提示',
								msg : '任务暂停成功！'
							});
						}
					});
				}
			});
			}
		} else {
			parent.thunms.alert('提示', '请选择要暂停的任务！', 'error');
		}
	}
	/**
	 * 暂停所有任务
	 */
	function qrtzTriggersSuspendAll(){
		parent.thunms.confirm('请确认', '您要暂停当前所所有任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/suspendAll',
						cache : false,
						dataType : "json",
						success : function(msg) {
							qrtzTriggersDataGrid.datagrid('unselectAll');
							qrtzTriggersDataGrid.datagrid('reload');
							parent.thunms.show({
								title : '提示',
								msg : msg.msg
							});
						}
					});
				}
			});
	}
	/**
	 * 任务启动恢复
	 */
	function qrtzTriggersRecovery() {
		var ids = [];
		var rows = qrtzTriggersDataGrid.datagrid('getSelections');
		if (rows.length != 1 && rows.length != 0) {
	        var names = [];
	        for (var i = 0; i < rows.length; i++) {
	            names.push(rows[i].id);
	        }
	        parent.thunms.show({
	                    msg : '只能择一任务进行操作！您已经选择了' + rows.length + '条数据',
	                    title : '提示'
	                });
	    } else if (rows.length == 1) {
	    	var row=rows[0];
	    	if(row.triggerState == 'ACQUIRED'){
	    		parent.thunms.alert('提示', '任务正在运行中！', 'error');
	    	}else{
			parent.thunms.confirm('请确认', '您要启动或恢复当前所选任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/recovery',
						data : {triggerName:rows[0].triggerName,triggerGroup:rows[0].triggerGroup},
						cache : false,
						dataType : "json",
						success : function(response) {
							qrtzTriggersDataGrid.datagrid('unselectAll');
							qrtzTriggersDataGrid.datagrid('reload');
							parent.thunms.show({
								title : '提示',
								msg : '任务启动或恢复成功！'
							});
						}
					});
				}
			});
			}
		} else {
			parent.thunms.alert('提示', '请选择要启动或恢复的任务数据！', 'error');
		}
	}
	/**
	 * 恢复所有任务
	 */
	function qrtzTriggersRecoveryAll(){
			parent.thunms.confirm('请确认', '您要启动或恢复所有任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/recoveryAll',
						cache : false,
						dataType : "json",
						success : function(msg) {
							qrtzTriggersDataGrid.datagrid('unselectAll');
							qrtzTriggersDataGrid.datagrid('reload');
							parent.thunms.show({
								title : '提示',
								msg : msg.msg
							});
						}
					});
				}
			});
	}
	
	function searchFun() {
		qrtzTriggersDataGrid.datagrid('load', $("#qrtzTriggersSearchForm").serializeObject());
	}
	function clearFun() {
		$("#qrtzTriggersSearchForm").clear();
		qrtzTriggersDataGrid.datagrid('load', {});
	}
	
	
	/**
	 * 启动所有
	 */
	function qrtzTriggersStartAll(){
		parent.thunms.confirm('请确认', '您要暂停当前所所有任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/startJobsAll',
						cache : false,
						dataType : "json",
						success : function(msg) {
							qrtzTriggersDataGrid.datagrid('unselectAll');
							qrtzTriggersDataGrid.datagrid('reload');
							parent.thunms.show({
								title : '提示',
								msg : msg.msg
							});
						}
					});
				}
			});
	}
	
	/**
	 * 停止所有
	 */
	function qrtzTriggersShutdownAll(){
		parent.thunms.confirm('请确认', '您要暂停当前所所有任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/shutdownJobsAll',
						cache : false,
						dataType : "json",
						success : function(msg) {
							qrtzTriggersDataGrid.datagrid('unselectAll');
							qrtzTriggersDataGrid.datagrid('reload');
							parent.thunms.show({
								title : '提示',
								msg : msg.msg
							});
						}
					});
				}
			});
	}
	
	
	/**
	 * 模拟执行
	 */
	function qrtzTriggersSimulation() {
		var ids = [];
		var rows = qrtzTriggersDataGrid.datagrid('getSelections');
		if (rows.length != 1 && rows.length != 0) {
	        var names = [];
	        for (var i = 0; i < rows.length; i++) {
	            names.push(rows[i].id);
	        }
	        parent.thunms.show({
	                    msg : '只能择一任务进行操作！您已经选择了' + rows.length + '条数据',
	                    title : '提示'
	                });
	    } else if (rows.length == 1) {
	    	var row=rows[0];
			parent.thunms.confirm('请确认', '您要模拟运行当前所选任务？', function(r) {
				if (r) {
					$.ajax({
						url :  thunms.base()+'/schedule/quartz/qrtzTriggers/simulatio',
						data : {triggerName:rows[0].triggerName,triggerGroup:rows[0].triggerGroup},
						cache : false,
						dataType : "html",
						success : function(msg) {
							parent.parent.thunms.alert("模拟执行结果",msg);
						}
					});
				}
			});
			
		} else {
			parent.thunms.alert('提示', '请选择要启动或恢复的任务数据！', 'error');
		}
	}
	
	
	function qrtzTriggersUpdateCron(){

		var ids = [];
		var rows = qrtzTriggersDataGrid.datagrid('getSelections');
		if (rows.length != 1 && rows.length != 0) {
	        var names = [];
	        for (var i = 0; i < rows.length; i++) {
	            names.push(rows[i].id);
	        }
	        parent.thunms.show({
	                    msg : '只能择一任务进行操作！您已经选择了' + rows.length + '条数据',
	                    title : '提示'
	                });
	    } else if (rows.length == 1) {
	    	var row=rows[0];
			parent.thunms.confirm('请确认', '您要重新设置当前任务规则吗？', function(r) {
				if (r) {

			    	 var upladoer = $('<iframe/>');
					 upladoer.attr({'src':thunms.base() + '/schedule/quartz/qrtzTriggers/advancedAdd',width:'100%',height:'99.2%',frameborder:'0',scrolling:'no'});
			    	 
		    	 var p = parent.thunms.dialog({
			                //href : thunms.base() + '',
		    		 		content:upladoer,
			                title : '高级任务添加',
			                maximized:true,
		                    closable:false,
			               	width : $(document.body).width(),
			                height : $(document.body).height(),
			                buttons : [{
			                            text : '保存',
			                            handler : function() {
			                                parent.thunms.confirm('请确认', '您要修改当前任务规则？', function(r) {
			                                            if (r) {
			                                            	$(upladoer)[0].contentWindow.advancedAddSave(p,qrtzTriggersDataGrid,rows[0].triggerName,rows[0].triggerGroup);
			                                            }
			                                        });
			                            }
			                        }, {
			                            text : 'Cron测试',
			                            handler : function() {
			                                parent.thunms.confirm('请确认', '您要测试当前表达式吗？', function(r) {
			                                            if (r) {
			                                            	$(upladoer)[0].contentWindow.cronExpression();
			                                            }
			                                        });
			                                
			                            }
			                        },{
			                            text : '取消',
			                            handler : function() {
			                                parent.thunms.confirm('请确认', '您要取消当前操作吗？', function(r) {
			                                            if (r) {
			                                                p.dialog('close');
			                                            }
			                                        });
			                                
			                            }
			                        }]
			            });
				}
			});
			
		} else {
			parent.thunms.alert('提示', '请选择要修改规则的任务！', 'error');
		}
	}
